home *** CD-ROM | disk | FTP | other *** search
/ Freelog 115 / FreelogNo115-MaiJuin2013.iso / Internet / AvantBrowser / asetup.exe / _data / webkit / chrome_100_percent.pak / Unnamed File 000025.txt < prev    next >
Text File  |  2013-04-03  |  4KB  |  90 lines

  1. // Copyright (c) 2012 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4.  
  5. // Custom bindings for the declarativeWebRequest API.
  6.  
  7. var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();
  8. var utils = require('utils');
  9. var validate = require('schemaUtils').validate;
  10.  
  11. chromeHidden.registerCustomHook('declarativeWebRequest', function(api) {
  12.   // Returns the schema definition of type |typeId| defined in |namespace|.
  13.   function getSchema(namespace, typeId) {
  14.     var apiSchema = utils.lookup(api.apiDefinitions, 'namespace', namespace);
  15.     var resultSchema = utils.lookup(
  16.         apiSchema.types, 'id', namespace + '.' + typeId);
  17.     return resultSchema;
  18.   }
  19.  
  20.   // Helper function for the constructor of concrete datatypes of the
  21.   // declarative webRequest API.
  22.   // Makes sure that |this| contains the union of parameters and
  23.   // {'instanceType': 'declarativeWebRequest.' + typeId} and validates the
  24.   // generated union dictionary against the schema for |typeId|.
  25.   function setupInstance(instance, parameters, typeId) {
  26.     for (var key in parameters) {
  27.       if (parameters.hasOwnProperty(key)) {
  28.         instance[key] = parameters[key];
  29.       }
  30.     }
  31.     instance.instanceType = 'declarativeWebRequest.' + typeId;
  32.     var schema = getSchema('declarativeWebRequest', typeId);
  33.     validate([instance], [schema]);
  34.   }
  35.  
  36.   // Setup all data types for the declarative webRequest API.
  37.   chrome.declarativeWebRequest.RequestMatcher = function(parameters) {
  38.     setupInstance(this, parameters, 'RequestMatcher');
  39.   };
  40.   chrome.declarativeWebRequest.CancelRequest = function(parameters) {
  41.     setupInstance(this, parameters, 'CancelRequest');
  42.   };
  43.   chrome.declarativeWebRequest.RedirectRequest = function(parameters) {
  44.     setupInstance(this, parameters, 'RedirectRequest');
  45.   };
  46.   chrome.declarativeWebRequest.SetRequestHeader = function(parameters) {
  47.     setupInstance(this, parameters, 'SetRequestHeader');
  48.   };
  49.   chrome.declarativeWebRequest.RemoveRequestHeader = function(parameters) {
  50.     setupInstance(this, parameters, 'RemoveRequestHeader');
  51.   };
  52.   chrome.declarativeWebRequest.AddResponseHeader = function(parameters) {
  53.     setupInstance(this, parameters, 'AddResponseHeader');
  54.   };
  55.   chrome.declarativeWebRequest.RemoveResponseHeader = function(parameters) {
  56.     setupInstance(this, parameters, 'RemoveResponseHeader');
  57.   };
  58.   chrome.declarativeWebRequest.RedirectToTransparentImage =
  59.       function(parameters) {
  60.     setupInstance(this, parameters, 'RedirectToTransparentImage');
  61.   };
  62.   chrome.declarativeWebRequest.RedirectToEmptyDocument = function(parameters) {
  63.     setupInstance(this, parameters, 'RedirectToEmptyDocument');
  64.   };
  65.   chrome.declarativeWebRequest.RedirectByRegEx = function(parameters) {
  66.     setupInstance(this, parameters, 'RedirectByRegEx');
  67.   };
  68.   chrome.declarativeWebRequest.IgnoreRules = function(parameters) {
  69.     setupInstance(this, parameters, 'IgnoreRules');
  70.   };
  71.   chrome.declarativeWebRequest.AddRequestCookie = function(parameters) {
  72.     setupInstance(this, parameters, 'AddRequestCookie');
  73.   };
  74.   chrome.declarativeWebRequest.AddResponseCookie = function(parameters) {
  75.     setupInstance(this, parameters, 'AddResponseCookie');
  76.   };
  77.   chrome.declarativeWebRequest.EditRequestCookie = function(parameters) {
  78.     setupInstance(this, parameters, 'EditRequestCookie');
  79.   };
  80.   chrome.declarativeWebRequest.EditResponseCookie = function(parameters) {
  81.     setupInstance(this, parameters, 'EditResponseCookie');
  82.   };
  83.   chrome.declarativeWebRequest.RemoveRequestCookie = function(parameters) {
  84.     setupInstance(this, parameters, 'RemoveRequestCookie');
  85.   };
  86.   chrome.declarativeWebRequest.RemoveResponseCookie = function(parameters) {
  87.     setupInstance(this, parameters, 'RemoveResponseCookie');
  88.   };
  89. });
  90.